#ifndef _OCI_TYPEDEF_
#define _OCI_TYPEDEF_

#include "QDP.h"
#include "CPxTime2a.h"


typedef union _OCI { //继电保护装置的输出电路命令 
	struct {
		#if (IEC_ENDIAN  == IEC_LITTLE_ENDIAN)
			uint8_t GC  : 1 ; //0:无总命令输出至输出电路
			uint8_t CL1 : 1 ; //0:无命令输出至 A 相输出电路
			uint8_t CL2 : 1 ; //0:无命令输出至 B 相输出电路
			uint8_t CL3 : 1 ; //0:无命令输出至 C 相输出电路
			uint8_t RES : 4 ; //RES（3bit）：保留
		#else
			uint8_t RES : 4 ; //RES（3bit）：保留
			uint8_t CL3 : 1 ; //RES（3bit）：保留
			uint8_t CL2 : 1 ; //RES（3bit）：保留
			uint8_t CL1 : 1 ; //0=A相保护未启动
			uint8_t GC  : 1 ; //0=无总启动
		#endif
	}part;

	uint8_t val;
}OCI_t;

//M_EP_TC_1,//<19>  ：= 带时标的继电保护装置成组输出电路信息 
typedef struct OCI24T {
    OCI_t OCI ;
    QDP_t QDP ;
    struct CP16Time2a acttime ;
    struct CP24Time2a time ;
}
OCI24T_t ;


//M_EP_TF_1,//<40>  ：= 带 CP56Time2a 时标的继电保拌装置成组输出电路信息 
typedef struct OCI56T {
    OCI_t OCI ;
    QDP_t QDP ;
    struct CP16Time2a acttime ;
    struct CP56Time2a time ;
}
OCI56T_t ;

#endif
